Ludmila Maria Rattios Teixeira


##Distncia entre cidades

Abaixo as distncias por estradas entre quatro cidades da Europa, em quilmetros: 

Atenas a Madri: 3949
Atenas a Paris: 3000
Atenas a Estocolmo: 3927
Madri a Paris: 1273
Madri a Estocolomo: 3188
Paris a Estocolmo: 1827
1-) Construa uma matriz de distncias com esses valores.

resposta
          Athens Paris Madrid Stockholm
Athens         0  3000   3949      3927
Paris       3000     0   1273      1827
Madrid      3949  1273      0      3188
Stockholm   3927  1827   3188         0


2-)Compare sua matriz com o objeto eurodist, disponvel no pacote datasets.

R: table(resposta==distancia)
   
   TRUE 
    16 
As distancias fornecidas apresentaram-se iguais s de eurodist.

###################################################################################################################

##Criao de um data frame

Imagine um experimento em que hamsters de dois fentipos (claros e escuros) recebem trs tipos diferentes de dieta, e no qual as diferenas dos pesos (g) entre o fim e o incio do experimento sejam: 

               DIETA A           DIETA B           DIETA C  
CLAROS    0.1 , 1.1 , 3.7    5.7, -1.2, -1.5    3.0, -0.4, 0.6  
ESCUROS   1.5, -0.1, 2.0     0.6, -3.0, -0.3    -0.2, 0.3, 1.5  

1-) Crie um data frame com esses dados, na qual cada hamster seja uma linha, e as colunas sejam as variveis cor, dieta e variao do peso.

R:   Cor    Dieta      Variao.do.peso
1   claro     A              0.1
2   claro     A              1.1
3   claro     A              3.7
4   claro     B              5.7
5   claro     B             -1.2
6   claro     B             -1.5
7   claro     C              3.0
8   claro     C             -0.4
9   claro     C              0.6
10 escuro     A              1.5
11 escuro     A             -0.1
12 escuro     A              2.0
13 escuro     B              0.6
14 escuro     B             -3.0
15 escuro     B             -0.3
16 escuro     C             -0.2
17 escuro     C              0.3
18 escuro     C              1.5


2-) Qual a media por dieta e por fentipo?

R: A:1,38
   B:0,05
   C:0,80
   Claro:1,23
   Escuro:0,26

DICA: Use as funes de gerar repeties para criar os vetores dos tratamentos. 

OPCIONAL: depois de fazer este exerccio com as funes de repetio, experimente repet-lo com a funo expand.grid 


##Criando uma Matriz


1-)Crie um objeto da classe matriz com 5 colunas e 3 linhas contendo uma amostra de uma distribuio normal de mdia 10 e varincia 3,6. 

R:     [,1]      [,2]      [,3]      [,4]     [,5]
[1,] 8.189032 13.337520  8.860970 13.032324 8.185368
[2,] 7.330091  8.448933 16.646303 13.471300 3.426036
[3,] 6.295142  4.763480  5.923909  7.484398 8.286210


2-)Mude os nomes das linhas para L1 a L3 e das colunas para C1 a C5. Dica: A funo paste pode poupar trabalho.

R: rownames(matriz3) <-paste ("L",1:3) 
   colnames(matriz3) <-paste ("C",1:5) 
        C 1       C 2       C 3       C 4      C 5
L 1  8.189032 13.337520  8.860970 13.032324 8.185368
L 2  7.330091  8.448933 16.646303 13.471300 3.426036
L 3  6.295142  4.763480  5.923909  7.484398 8.286210


3-)Calcule a mdia e a varincia por colunas e depois por linhas. Guarde os resultados em um dataframe diferenciando varincia de mdia em dois vetores. 

vector.col=c("C1","C2","C3","C4","C5","L1","L2","L3")

tabela=data.frame(vector.col,row.names=NULL)

tabela

tabela$Media="vetor.media"

tabela

media.das.linhas=apply(matriz3, 1, mean)

media.das.linhas

media.das.colunas=apply(matriz3,2,mean)

media.das.colunas

var.das.linhas=apply(matriz3,1,var)

var.das.colunas=apply(matriz3,2,var)

vetor.media=c(media.das.colunas,media.das.linhas) 

vetor.media

var.das.colunas=as.vector(var.das.colunas)

var.das.linhas=as.vector(var.das.linhas)

vetor.media=c(media.das.colunas,media.das.linhas)

vetor.var=c(var.das.colunas,var.das.linhas)

vetor.var

vetor.media
tabela$Media = vetor.media
tabela
tabela$Var=vetor.var



R:  Posicao    Media       Variancia
1      C1    10.188805     53.705937
2      C2    13.820196     15.178842
3      C3    13.928704     17.406643
4      C4    11.516475      6.253093
5      C5    12.796619     33.547453
6      L1    13.738982      5.646962
7      L2    13.993040     21.932434
8      L3     9.618457     28.017954


##Lendo e Salvando seus dados


1-)Leia um arquivo de dados de sua autoria e faa um sumrio das variveis independentes. Caso no tenha dados, ter que ir a campo, ou utilize alguns dos dados da rea Arquivos de dados da nossa pgina.

R:
teste=read.table("teste.csv",header=T,sep=",",row.names=NULL)
teste
str(teste) 
head(teste) 
dim(teste)
 names(teste)
table(teste$figo,teste$fundadoras) 
summary(teste)



2-)Faa uma seleo de um estado de atributo de um vetor fator e salve em um objeto (uma espcie, uma localidade), mantendo todos os outros dados. Em seguida selecione apenas trs colunas dos dados e salve em outro objeto e depois em um arquivo de formato .txt, separado por tabulao e sem nome de linhas. Lembre-se de olhar o help antes de surtar! Para verificar se o arquivo est correto abra-o no EXeCELente programa da Microsoft! 

teste$local
local.vetor=teste$local
 teste[,4:6]
colunas.dados=teste[,4:6]
> head=(colunas.dados)
> colunas.dados=teste[,4:6]
> colunas.dados
   figo fundadoras ostiolo
1     1          4       0
2     2          6       0
3     3          8       0
4     4          6       0
5     5          5       0
6     6          1       0
7     7          4       0
8     8          4       1
9     9          3       0
10   10          2       0
11   11          1       0
12   12          8       0
13   13          0       0
14   14          3       0
15   15          4       1
16   16          2       1
17   17          3       0
18   18          2       0
19   19          2       3
20   20          9       1
21   21          1       0
22   22          5       2
23   23          7       0
24   24          0       2
25   25          1       0
26   26          6       0
27   27          4       0
28   28          1       0
29   29          0       0
30   30          3       0
31   31         22       0
32   32          4       0
33   33          2       1
34   34          1       2
35   35          6       2
36   36          3       0
37   37          2       2
38   38          0       1
39   39          2       1
40   40          0       8
41   41          3       3
42   42          6       0
43   43          7       0
44   44          6       0
45   45          9       0
46   46          5       0
47   47          6       0
48   48          3       0
49   49          1       1
50   50          2       1


write.table(teste,"colunas.dados", append = FALSE, quote = TRUE, sep = ", ", eol = "\n", na = "NA", dec = ".", row.names =FALSE,col.names = TRUE, qmethod = c("escape", "double")) 

individuo	 "data"	 "local"	 "figo"	 "fundadoras"	 "ostiolo"
TS270a	 "24/06/08"	 "Teodoro Sampaio"	1	4	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	2	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	3	8	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	4	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	5	5	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	6	1	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	7	4	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	8	4	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	9	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	10	2	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	11	1	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	12	8	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	13	0	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	14	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	15	4	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	16	2	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	17	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	18	2	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	19	2	3
TS270a	 "24/06/08"	 "Teodoro Sampaio"	20	9	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	21	1	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	22	5	2
TS270a	 "24/06/08"	 "Teodoro Sampaio"	23	7	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	24	0	2
TS270a	 "24/06/08"	 "Teodoro Sampaio"	25	1	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	26	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	27	4	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	28	1	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	29	0	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	30	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	31	22	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	32	4	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	33	2	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	34	1	2
TS270a	 "24/06/08"	 "Teodoro Sampaio"	35	6	2
TS270a	 "24/06/08"	 "Teodoro Sampaio"	36	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	37	2	2
TS270a	 "24/06/08"	 "Teodoro Sampaio"	38	0	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	39	2	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	40	0	8
TS270a	 "24/06/08"	 "Teodoro Sampaio"	41	3	3
TS270a	 "24/06/08"	 "Teodoro Sampaio"	42	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	43	7	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	44	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	45	9	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	46	5	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	47	6	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	48	3	0
TS270a	 "24/06/08"	 "Teodoro Sampaio"	49	1	1
TS270a	 "24/06/08"	 "Teodoro Sampaio"	50	2	1



##Classes de Objetos

O pacote datasets contm vrios conjuntos de dados para uso em treinamento com a linguagem R. 

O conjunto iris  distribudo de duas formas diferentes, nos objetos iris e iris3. So quatro medidas de flores de trs espcies de Iris (Iridaceae). 

1-)Quais so as classes desses dois objetos?

R:      class(iris)
             "data.frame"
        class(iris3)
             "array"


2-)Calcule a mdia de cada uma das quatro medidas por espcie, dos dois objetos. DICA: as fues da famlia apply iro te ajudar.

> mean(iris$Sepal.Length)
[1] 5.843333
> mean(iris$Sepal.Width)
[1] 3.057333
> mean(iris$Petal.Length)
[1] 3.758
> mean(iris$Petal.Width)
[1] 1.199333

apply(iris3,c(2,3),mean)
 
          Setosa   Versicolor Virginica
Sepal L.  5.006      5.936     6.588
Sepal W.  3.428      2.770     2.974
Petal L.  1.462      4.260     5.552
Petal W.  0.246      1.326     2.026




Os nomes das variaveis esto em ingls. Mude-os para portugus no objeto iris. DICA: Como tudo mais no R, os resultados da funo names podem ser armazenados em um objeto.

R: names(iris)=c("Comp. sepalas","Larg. sepalas","Comp. petalas","Larg. petalas","Especies")

head(names)
 Comp. sepalas Larg. sepalas Comp. petalas Larg. petalas Especies
1           5.1           3.5           1.4           0.2   setosa
2           4.9           3.0           1.4           0.2   setosa
3           4.7           3.2           1.3           0.2   setosa
4           4.6           3.1           1.5           0.2   setosa
5           5.0           3.6           1.4           0.2   setosa
6           5.4           3.9           1.7           0.4   setosa
> 



##Acrescentando Dados de Sntese

1-)Crie um objeto com os dados do arquivo-texto esaligna.csv.

R:
read.table("esaligna",sep=",", as.is=T, header=T, row.names=NULL)

esaligna=read.table("esaligna.csv",sep=",", as.is=T, header=T, row.names=NULL)


2-)Verifique o contedo do objeto resultante, com a funo summary.

 summary(esaligna)
     arvore          classe              talhao           dap        
 Min.   : 1.000   Length:36          Min.   :16.00   Min.   : 5.900  
 1st Qu.: 3.000   Class :character   1st Qu.:17.00   1st Qu.: 8.575  
 Median : 5.000   Mode  :character   Median :22.00   Median :12.450  
 Mean   : 5.167                      Mean   :21.86   Mean   :12.935  
 3rd Qu.: 7.250                      3rd Qu.:23.00   3rd Qu.:16.625  
 Max.   :10.000                      Max.   :32.00   Max.   :23.000  
       ht            tronco           sobra            folha       
 Min.   : 6.36   Min.   :  1.96   Min.   : 1.810   Min.   : 0.120  
 1st Qu.:11.03   1st Qu.: 15.57   1st Qu.: 5.935   1st Qu.: 1.575  
 Median :12.75   Median : 47.52   Median : 8.735   Median : 3.835  
 Mean   :13.51   Mean   : 71.38   Mean   :14.574   Mean   : 7.232  
 3rd Qu.:16.35   3rd Qu.:107.07   3rd Qu.:16.473   3rd Qu.: 8.352  
 Max.   :25.52   Max.   :272.16   Max.   :65.830   Max.   :48.520  
     total       
 Min.   :  7.67  
 1st Qu.: 30.46  
 Median : 59.79  
 Mean   : 93.20  
 3rd Qu.:124.23  
 Max.   :299.91  



3-)Acrescente uma nova coluna ao data frame resultante, com a soma das biomassas de folhas e do tronco de cada rvore.

esaligna$soma.biomassas=esaligna$tronco+esaligna$folha
esaligna

> head(esaligna)
  arvore classe talhao  dap    ht tronco sobra folha  total soma.biomassas
1      6      c     22 19.9 21.50 183.64 20.42  8.57 212.64         192.21
2      8      b     23 12.4 15.74  42.29  6.58  2.52  51.40          44.81
3      7      c     32 16.5 11.74  60.61 11.35 48.52 120.49         109.13
4      8      a     32  9.0  7.72  12.28  9.99 27.67  49.95          39.95
5      9      a     32  7.0  6.55  11.86  7.97  7.76  27.61          19.62
6      9      b     32 10.5  8.79  26.10  7.48 23.36  56.95          49.46


4-)Acrescente outra coluna, com o valor da rea basal de cada rvore.

raio=esaligna$dap/2
area.basal=pi*raio^2
area.basal
esaligna$area.basal=area.basal
head(esaligna)

 arvore classe talhao   dap      ht     tronco   sobra    folha       total    soma.biomassas
   6      c     22     19.9    21.50    183.64   20.42     8.57      212.64         192.21
   8      b     23     12.4    15.74     42.29    6.58     2.52       51.40          44.81
   7      c     32     16.5    11.74     60.61   11.35    48.52      120.49         109.13
   8      a     32      9.0     7.72     12.28    9.99    27.67       49.95          39.95
   9      a     32      7.0     6.55     11.86    7.97     7.76       27.61          19.62
   9      b     32     10.5     8.79     26.10    7.48    23.36       56.95          49.46
  area.basal
  311.02553
  120.76282
  213.82465
   63.61725
   38.48451
   86.59015


5-)Calcule a rea basal total por talho e salve em um objeto

area.basal.total=tapply(esaligna$area.basal,esaligna$talhao,sum, simplify = TRUE)
area.basal.total

    16       17       18       22       23       32 
 561.167 1098.089  347.468 1023.382 1306.062 1136.866 

6-)Calcule a mdia por talho

area.basal.media=tapply(esaligna$area.basal,esaligna$talhao,mean, simplify = TRUE)

area.basal.media
       16        17        18        22        23        32 
 93.52783 156.86982 115.82267 204.67633 163.25777 162.40940 


7-)Selecione apenas os dados relativos  rvores com mais de 10 cm de dimetro

dap.maior.10 = esaligna[esaligna$dap>=10,]

> head(dap.maior.10)
  arvore classe talhao  dap    ht tronco sobra folha  total soma.biomassas
1      6      c     22 19.9 21.50 183.64 20.42  8.57 212.64         192.21
2      8      b     23 12.4 15.74  42.29  6.58  2.52  51.40          44.81
3      7      c     32 16.5 11.74  60.61 11.35 48.52 120.49         109.13
6      9      b     32 10.5  8.79  26.10  7.48 23.36  56.95          49.46
7      1      c     22 13.0 12.86  47.84 12.14  2.33  62.32          50.17
8      2      c     22 20.0 20.05 183.07 32.18 14.56 229.83         197.63
  area.basal
1  311.02553
2  120.76282
3  213.82465
6   86.59015
7  132.73229
8  314.15927


8-)Salve em um arquivo txt, seperado por tabulao.

write.table(dap.maior.10, file = "dap.10",sep="\t") 


UFA! 
